package com.example.security.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * SSO客户端配置属性
 * 用于配置单点登录客户端参数
 */
@Data
@Component
@ConfigurationProperties(prefix = "sso.client")
public class SsoClientProperties {
    
    /**
     * 客户端ID
     * 用于在SSO服务器端标识此客户端
     */
    private String clientId;
    
    /**
     * 客户端密钥
     * 用于和SSO服务器进行安全通信
     */
    private String clientSecret;
    
    /**
     * SSO服务器地址
     * 统一认证中心的地址
     */
    private String serverUrl;
    
    /**
     * Token相关配置
     */
    private TokenConfig token = new TokenConfig();
    
    @Data
    public static class TokenConfig {
        /**
         * token过期时间(秒)
         * 默认2小时
         */
        private long expireTime = 7200;
        
        /**
         * token刷新时间(秒)
         * 默认1小时
         */
        private long refreshTime = 3600;
    }
} 